﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel.DomainServices.Hosting;
using Didsoft.SalesLive.Entidades;
using Didsoft.SalesLive.AccesoDatos;
using System.ServiceModel.DomainServices.EntityFramework;
using System.Data.Entity.Infrastructure;
using System.Data;

namespace Didsoft.SalesLive.Negocios
{ 
    [EnableClientAccess]
    public class RolNegocios : DbDomainService<MyDBContext>
    {
        public void Insert(Rol entidad)
        {
            Guardar(entidad);
        }

        public void Update(Rol entidad)
        {
            Guardar(entidad);
        }


        public IQueryable<Rol> GetRoles()
        {
            return this.DbContext.Rol;
        }

        private void Guardar(Rol entidad)
        {
           if (entidad.Id == 0)
            {
                DbEntityEntry<Rol> entityEntry = this.DbContext.Entry(entidad);
                if ((entityEntry.State != EntityState.Detached))
                {
                    entityEntry.State = EntityState.Added;
                }
                else
                {
                    this.DbContext.Rol.Add(entidad);
                    this.DbContext.SaveChanges();
                }
            }
            else
            {

                this.DbContext.Rol.AttachAsModified(entidad, this.ChangeSet.GetOriginal(entidad), this.DbContext);
            }
        }


        public void Delete(Rol entidad)
        {
            DbEntityEntry<Rol> entityEntry = this.DbContext.Entry(entidad);
            if ((entityEntry.State != EntityState.Deleted))
            {
                entityEntry.State = EntityState.Deleted;
            }
            else
            {
                this.DbContext.Rol.Attach(entidad);
                this.DbContext.Rol.Remove(entidad);
            }        
        }

    }
}
